/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.cpqd.ssar.gerenciador;

import java.util.ArrayList;
import java.util.Collection;

/**
 *
 * @author igor
 */
public class Status {

    /* status da simulacao
     * 0 software iniciado sem nenhuma acao do usuario ou sem Geometrias
     * 1 geometria inserida e/ou stl e/ou dxf criados
     * 2 geometrias e/ou STL e/ou DXF com materiais setados
     * 3 Triangularizacao efetuada
     * 4 malha feita sobre geometrias, dxf ou stl
     * 5 definicao da fonte de radiacao
     * 6 definicao dos materiais
     * 7 escolha de tipos de relatorios efetuada
     * 8 simulacao sendo efetuada
     * 9 simulacao terminada
     * 10 relatorios gerados e instanciados
     */
    private boolean inicio = true;
    private boolean geometriaInserida = false;
    private boolean materialSetado = false;
    private boolean triangularizacaoEfetuada = false;
    private boolean malhaEfetuada = false;
    private boolean fonteSetada = false;
    private boolean relatoriosEscolhidos = false;
    private boolean simulacaoEmAndamento = false;
    private boolean simulacaoFinalizada = false;
    private boolean relatoriosGerados = false;
    private boolean btnGerarmalha = false;
   

    public Status() {
    }

    public boolean isInicio() {
        return inicio;
    }

    public void setInicio(boolean inicio) {
        this.inicio = inicio;
    }

    public boolean isGeometriaInserida() {
        return geometriaInserida;
    }

    public boolean setGeometriaInserida(boolean geometriaInserida) {
        this.geometriaInserida = geometriaInserida;
        return this.verificarGerarMalha();
    }

    public boolean isMaterialSetado() {
        return materialSetado;
    }

    public boolean setMaterialSetado(boolean materialSetado) {
        this.materialSetado = materialSetado;
        return this.verificarGerarMalha();
    }

    public boolean isTriangularizacaoEfetuada() {
        return triangularizacaoEfetuada;
    }

    public void setTriangularizacaoEfetuada(boolean triangularizacaoEfetuada) {
        this.triangularizacaoEfetuada = triangularizacaoEfetuada;
        verificarGerarMalha();
    }

    public boolean isMalhaEfetuada() {
        return malhaEfetuada;
    }

    public boolean setMalhaEfetuada(boolean malhaEfetuada) {
        this.malhaEfetuada = malhaEfetuada;
        return verificarSimularFDTD();
    }

    public boolean isFonteSetada() {
        return fonteSetada;
    }

    public boolean setFonteSetada(boolean fonteSetada) {
        this.fonteSetada = fonteSetada;
        return verificarGerarMalha();
    }

    public boolean isRelatoriosEscolhidos() {
        return relatoriosEscolhidos;
    }

    public void setRelatoriosEscolhidos(boolean relatoriosEscolhidos) {
        this.relatoriosEscolhidos = relatoriosEscolhidos;
    }

    public boolean isSimulacaoEmAndamento() {
        return simulacaoEmAndamento;
    }

    public boolean setSimulacaoEmAndamento(boolean simulacaoEmAndamento) {
        this.simulacaoEmAndamento = simulacaoEmAndamento;
        return simulacaoEmAndamento;
        
    }

    public boolean isSimulacaoFinalizada() {
        return simulacaoFinalizada;
    }

    public boolean setSimulacaoFinalizada(boolean simulacaoFinalizada) {
        this.simulacaoFinalizada = simulacaoFinalizada;
        return simulacaoFinalizada;
    }

    public boolean isRelatoriosGerados() {
        return relatoriosGerados;
    }

    public void setRelatoriosGerados(boolean relatoriosGerados) {
        this.relatoriosGerados = relatoriosGerados;
    }

    public boolean verificarGerarMalha() {
             
        boolean status = false;
        if ((this.geometriaInserida == true) && (this.materialSetado == true) && (this.fonteSetada == true)) {
            
            status = true;

        } else if ((this.geometriaInserida == false) || (this.materialSetado == false) || (this.fonteSetada == false)) {
           
            malhaEfetuada = false;
            status = false;
        }
        return status;
    }

    public boolean verificarSimularFDTD() {
        boolean status = false;
        if (this.malhaEfetuada) {
           
            status = true;
        } else {
            
            status = false;
        }
        return status;
    }      
}
